﻿namespace MicroCloud.Authorization
{
    /// <summary>
    /// 数据权限缓存的功能接口
    /// </summary>
    public interface IDataAuthCache
    {
        #region "方法"
        #region "构建数据权限缓存"
        /// <summary>
        /// 构建数据权限缓存
        /// </summary>
        void BuildCaches();
        #endregion
        #region "设置指定数据权限的缓存"
        /// <summary>
        /// 设置指定数据权限的缓存
        /// </summary>
        /// <param name="item">要设置的数据权限缓存项</param>
        void SetCache(DataAuthCacheItem item);
        #endregion
        #region "移除指定数据权限的缓存"
        /// <summary>
        /// 移除指定数据权限的缓存
        /// </summary>
        /// <param name="item">要移除的数据权限缓存项</param>
        void RemoveCache(DataAuthCacheItem item);
        #endregion
        #region "获取指定数据权限的过滤规则"
        /// <summary>
        /// 获取指定数据权限的过滤规则
        /// </summary>
        /// <param name="type">用户/角色类型</param>
        /// <param name="name">名称</param>
        /// <param name="entityTypeFullName">实体类型名称</param>
        /// <param name="operation">数据权限操作</param>
        /// <returns>数据过滤条件组</returns>
        FilterGroup GetFilterGroup(UserRoleType type, string name, string entityTypeFullName, DataAuthOperation operation);
        #endregion

        #endregion

    }

}
